package com.cloud.force.api.entity;

import java.util.Date;
import java.util.UUID;
import javax.persistence.*;

import com.fasterxml.jackson.annotation.JsonFormat;

@Table(name = "rec_force_execute")
public class RecForceExecute {
    @Id
    @Column(name = "rec_id")
    private Long recId;

    @Column(name = "execute_type_id")
    private String executeTypeId;

    @Column(name = "execute_type_name")
    private String executeTypeName;

    @Column(name = "excute_basic_id")
    private Long excuteBasicId;

    @Column(name = "informdoc_received_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date informdocReceivedDate;

    @Column(name = "informdoc_received_type_id")
    private String informdocReceivedTypeId;

    @Column(name = "informdoc_received_type_name")
    private String informdocReceivedTypeName;

    @Column(name = "increase_fine")
    private Double increaseFine;

    @Column(name = "informdoc_secreceived_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date informdocSecreceivedDate;

    @Column(name = "informdoc_secreceived_type_id")
    private String informdocSecreceivedTypeId;

    @Column(name = "informdoc_secreceived_type_name")
    private String informdocSecreceivedTypeName;

    @Column(name = "court_force_flag")
    private Integer courtForceFlag;

    @Column(name = "approval_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date approvalDate;

    @Column(name = "excute_doc_num")
    private String excuteDocNum;

    @Column(name = "excute_doc_received_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date excuteDocReceivedDate;

    @Column(name = "punishdoc_received_type_id")
    private String punishdocReceivedTypeId;

    @Column(name = "punishdoc_received_type_name")
    private String punishdocReceivedTypeName;

    @Column(name = "execute_detail")
    private String executeDetail;

    @Column(name = "execute_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date executeDate;

    @Column(name = "execute_consult_flag")
    private Integer executeConsultFlag;

    @Column(name = "execute_rotation_flag")
    private Integer executeRotationFlag;

    @Column(name = "execute_rotation_reason")
    private String executeRotationReason;

    @Column(name = "execute_end_flag")
    private Integer executeEndFlag;

    @Column(name = "enddoc_received_date")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date enddocReceivedDate;

    @Column(name = "enddoc_received_type_id")
    private String enddocReceivedTypeId;

    @Column(name = "enddoc_received_type_name")
    private String enddocReceivedTypeName;

    @Column(name = "force_result")
    private String forceResult;

    @Column(name = "uuid")
    private String uuid;

    /**
     * @return rec_id
     */
    public Long getRecId() {
        return recId;
    }

    /**
     * @param recId
     */
    public void setRecId(Long recId) {
        this.recId = recId;
    }

    /**
     * @return execute_type_id
     */
    public String getExecuteTypeId() {
        return executeTypeId;
    }

    /**
     * @param executeTypeId
     */
    public void setExecuteTypeId(String executeTypeId) {
        this.executeTypeId = executeTypeId;
    }

    /**
     * @return execute_type_name
     */
    public String getExecuteTypeName() {
        return executeTypeName;
    }

    /**
     * @param executeTypeName
     */
    public void setExecuteTypeName(String executeTypeName) {
        this.executeTypeName = executeTypeName;
    }

    /**
     * @return excute_basic_id
     */
    public Long getExcuteBasicId() {
        return excuteBasicId;
    }

    /**
     * @param excuteBasicId
     */
    public void setExcuteBasicId(Long excuteBasicId) {
        this.excuteBasicId = excuteBasicId;
    }

    /**
     * @return informdoc_received_date
     */
    public Date getInformdocReceivedDate() {
        return informdocReceivedDate;
    }

    /**
     * @param informdocReceivedDate
     */
    public void setInformdocReceivedDate(Date informdocReceivedDate) {
        this.informdocReceivedDate = informdocReceivedDate;
    }

    /**
     * @return informdoc_received_type_id
     */
    public String getInformdocReceivedTypeId() {
        return informdocReceivedTypeId;
    }

    /**
     * @param informdocReceivedTypeId
     */
    public void setInformdocReceivedTypeId(String informdocReceivedTypeId) {
        this.informdocReceivedTypeId = informdocReceivedTypeId;
    }

    /**
     * @return informdoc_received_type_name
     */
    public String getInformdocReceivedTypeName() {
        return informdocReceivedTypeName;
    }

    /**
     * @param informdocReceivedTypeName
     */
    public void setInformdocReceivedTypeName(String informdocReceivedTypeName) {
        this.informdocReceivedTypeName = informdocReceivedTypeName;
    }

    /**
     * @return increase_fine
     */
    public Double getIncreaseFine() {
        return increaseFine;
    }

    /**
     * @param increaseFine
     */
    public void setIncreaseFine(Double increaseFine) {
        this.increaseFine = increaseFine;
    }

    /**
     * @return informdoc_secreceived_date
     */
    public Date getInformdocSecreceivedDate() {
        return informdocSecreceivedDate;
    }

    /**
     * @param informdocSecreceivedDate
     */
    public void setInformdocSecreceivedDate(Date informdocSecreceivedDate) {
        this.informdocSecreceivedDate = informdocSecreceivedDate;
    }

    /**
     * @return informdoc_secreceived_type_id
     */
    public String getInformdocSecreceivedTypeId() {
        return informdocSecreceivedTypeId;
    }

    /**
     * @param informdocSecreceivedTypeId
     */
    public void setInformdocSecreceivedTypeId(String informdocSecreceivedTypeId) {
        this.informdocSecreceivedTypeId = informdocSecreceivedTypeId;
    }

    /**
     * @return informdoc_secreceived_type_name
     */
    public String getInformdocSecreceivedTypeName() {
        return informdocSecreceivedTypeName;
    }

    /**
     * @param informdocSecreceivedTypeName
     */
    public void setInformdocSecreceivedTypeName(String informdocSecreceivedTypeName) {
        this.informdocSecreceivedTypeName = informdocSecreceivedTypeName;
    }

    /**
     * @return court_force_flag
     */
    public Integer getCourtForceFlag() {
        return courtForceFlag;
    }

    /**
     * @param courtForceFlag
     */
    public void setCourtForceFlag(Integer courtForceFlag) {
        this.courtForceFlag = courtForceFlag;
    }

    /**
     * @return approval_date
     */
    public Date getApprovalDate() {
        return approvalDate;
    }

    /**
     * @param approvalDate
     */
    public void setApprovalDate(Date approvalDate) {
        this.approvalDate = approvalDate;
    }

    /**
     * @return excute_doc_num
     */
    public String getExcuteDocNum() {
        return excuteDocNum;
    }

    /**
     * @param excuteDocNum
     */
    public void setExcuteDocNum(String excuteDocNum) {
        this.excuteDocNum = excuteDocNum;
    }

    /**
     * @return excute_doc_received_date
     */
    public Date getExcuteDocReceivedDate() {
        return excuteDocReceivedDate;
    }

    /**
     * @param excuteDocReceivedDate
     */
    public void setExcuteDocReceivedDate(Date excuteDocReceivedDate) {
        this.excuteDocReceivedDate = excuteDocReceivedDate;
    }

    /**
     * @return punishdoc_received_type_id
     */
    public String getPunishdocReceivedTypeId() {
        return punishdocReceivedTypeId;
    }

    /**
     * @param punishdocReceivedTypeId
     */
    public void setPunishdocReceivedTypeId(String punishdocReceivedTypeId) {
        this.punishdocReceivedTypeId = punishdocReceivedTypeId;
    }

    /**
     * @return punishdoc_received_type_name
     */
    public String getPunishdocReceivedTypeName() {
        return punishdocReceivedTypeName;
    }

    /**
     * @param punishdocReceivedTypeName
     */
    public void setPunishdocReceivedTypeName(String punishdocReceivedTypeName) {
        this.punishdocReceivedTypeName = punishdocReceivedTypeName;
    }

    /**
     * @return execute_detail
     */
    public String getExecuteDetail() {
        return executeDetail;
    }

    /**
     * @param executeDetail
     */
    public void setExecuteDetail(String executeDetail) {
        this.executeDetail = executeDetail;
    }

    /**
     * @return execute_date
     */
    public Date getExecuteDate() {
        return executeDate;
    }

    /**
     * @param executeDate
     */
    public void setExecuteDate(Date executeDate) {
        this.executeDate = executeDate;
    }

    /**
     * @return execute_consult_flag
     */
    public Integer getExecuteConsultFlag() {
        return executeConsultFlag;
    }

    /**
     * @param executeConsultFlag
     */
    public void setExecuteConsultFlag(Integer executeConsultFlag) {
        this.executeConsultFlag = executeConsultFlag;
    }

    /**
     * @return execute_rotation_flag
     */
    public Integer getExecuteRotationFlag() {
        return executeRotationFlag;
    }

    /**
     * @param executeRotationFlag
     */
    public void setExecuteRotationFlag(Integer executeRotationFlag) {
        this.executeRotationFlag = executeRotationFlag;
    }

    /**
     * @return execute_rotation_reason
     */
    public String getExecuteRotationReason() {
        return executeRotationReason;
    }

    /**
     * @param executeRotationReason
     */
    public void setExecuteRotationReason(String executeRotationReason) {
        this.executeRotationReason = executeRotationReason;
    }

    /**
     * @return execute_end_flag
     */
    public Integer getExecuteEndFlag() {
        return executeEndFlag;
    }

    /**
     * @param executeEndFlag
     */
    public void setExecuteEndFlag(Integer executeEndFlag) {
        this.executeEndFlag = executeEndFlag;
    }

    /**
     * @return enddoc_received_date
     */
    public Date getEnddocReceivedDate() {
        return enddocReceivedDate;
    }

    /**
     * @param enddocReceivedDate
     */
    public void setEnddocReceivedDate(Date enddocReceivedDate) {
        this.enddocReceivedDate = enddocReceivedDate;
    }

    /**
     * @return enddoc_received_type_id
     */
    public String getEnddocReceivedTypeId() {
        return enddocReceivedTypeId;
    }

    /**
     * @param enddocReceivedTypeId
     */
    public void setEnddocReceivedTypeId(String enddocReceivedTypeId) {
        this.enddocReceivedTypeId = enddocReceivedTypeId;
    }

    /**
     * @return enddoc_received_type_name
     */
    public String getEnddocReceivedTypeName() {
        return enddocReceivedTypeName;
    }

    /**
     * @param enddocReceivedTypeName
     */
    public void setEnddocReceivedTypeName(String enddocReceivedTypeName) {
        this.enddocReceivedTypeName = enddocReceivedTypeName;
    }

    /**
     * @return force_result
     */
    public String getForceResult() {
        return forceResult;
    }

    /**
     * @param forceResult
     */
    public void setForceResult(String forceResult) {
        this.forceResult = forceResult;
    }

    public String getUuid() {return uuid;}

    public void setUuid(String uuid) {
        if(uuid==null){
            this.uuid = UUID.randomUUID().toString().replace("-", "");
        }else {
            this.uuid = uuid;
        }
    }
}